lib: Introduce versioned symbols
authorColin Walters <walters@verbum.org>
Tue, 1 Mar 2016 22:42:59 +0000 (17:42 -0500)
committerColin Walters <walters@verbum.org>
Wed, 2 Mar 2016 02:45:26 +0000 (21:45 -0500)
commit16979cc5ed9b158b1a9b5ba929c8af32baa41d9d
tree41614ab83ed32cbda21ad497d4f4a6a1a0b37f75
parent2badf36cfdd7684eb83bb5d4113a4be6217a63ee
lib: Introduce versioned symbols

As rpm-ostree evolves, it keeps driving API additions to libostree.
This creates a relatively tight coupling.

However, if delivering via e.g. RPM, unless one manually remembers to
increment the `Requires:` in the spec file, it's possible for the two
to become desynchronized.

RPM handles versioned symbols and will ensure a dependency if the
application starts using a newer version.

To implement this, switch to `-fvisibility=hidden`, along with an
annotation in the header, and finally add a `.sym` file.

This matches what other projects like systemd and libvirt do.

Although rather than attempting to retroactively version symbols, glom
them all onto the current one.
19 files changed:
Makefile-libostree.am
src/libostree/libostree.sym [new file with mode: 0644]
src/libostree/ostree-async-progress.h
src/libostree/ostree-bootconfig-parser.h
src/libostree/ostree-chain-input-stream.h
src/libostree/ostree-checksum-input-stream.h
src/libostree/ostree-cmdprivate.h
src/libostree/ostree-core.h
src/libostree/ostree-deployment.h
src/libostree/ostree-diff.h
src/libostree/ostree-enumtypes.h.template
src/libostree/ostree-gpg-verify-result.h
src/libostree/ostree-mutable-tree.h
src/libostree/ostree-repo-file.h
src/libostree/ostree-repo.h
src/libostree/ostree-sepolicy.h
src/libostree/ostree-sysroot-upgrader.h
src/libostree/ostree-sysroot.h
src/libostree/ostree-types.h